
#pragma once

#include "ICond.h"

class CondC : public ICond
{
public:
	CondC();
	~CondC();
//////////////////////////// ICond //////////////////////////////////////////////
	virtual int8_t getCondType() { return (int8_t)EDupCondType::EDupCondType_C; };
	virtual bool init(IDuplicate *pDuplicate, const VEC_INT32 *pCond, const string &strSubCond);
	virtual void uninit();
	virtual void condUpdate();
	virtual bool finishCond();
	virtual int32_t result();
	virtual uint32_t towerMonsId();
	virtual void onMonsHpUpdate(int32_t hp);
private:
	int32_t checkCond();
	void notifyTowerHp();
private:
	IDuplicate *m_pDuplicate;
	const VEC_INT32 *m_pVecCond;
	int32_t m_result;
	bool m_finish;
	uint32_t m_towerId;
	SET_INT32 m_setType;
};